package com.ruoyi.project.jiaowu.classtime.mapper;

import com.ruoyi.project.jiaowu.classtime.domain.TbClassTime;
import com.ruoyi.project.lab.domain.LabDateParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 上课时间Mapper接口
 * 
 * @author zhoujie
 * @date 2019-10-23
 */
public interface TbClassTimeMapper 
{
    /**
     * 查询上课时间
     * 
     * @param id 上课时间ID
     * @return 上课时间
     */
    public TbClassTime selectTbClassTimeById(Long id);

    /**
     * 查询上课时间列表
     * 
     * @param tbClassTime 上课时间
     * @return 上课时间集合
     */
    public List<TbClassTime> selectTbClassTimeList(TbClassTime tbClassTime);
    /**
     * 查询上课时间列表
     *
     * @param
     * @return 上课时间集合
     */
    public List<TbClassTime> selectTbClassTimeList();

    /**
     * 新增上课时间
     * 
     * @param tbClassTime 上课时间
     * @return 结果
     */
    public int insertTbClassTime(TbClassTime tbClassTime);

    /**
     * 修改上课时间
     * 
     * @param tbClassTime 上课时间
     * @return 结果
     */
    public int updateTbClassTime(TbClassTime tbClassTime);

    /**
     * 删除上课时间
     * 
     * @param id 上课时间ID
     * @return 结果
     */
    public int deleteTbClassTimeById(Long id);

    /**
     * 批量删除上课时间
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTbClassTimeByIds(String[] ids);

    int insertClassTime(@Param("labDateParams") List<LabDateParam> labDateParams);


    int insertClassTime2(LabDateParam labDateParam);
    /**
     * 根据实验室id，预约日期，节次判断是否有该条数据
     */
    Long labDateIsExist(LabDateParam labDateParam);
    /**
     * 更新当前实验室当天节次的状态
     */
    boolean updateLabDateIsExist(LabDateParam labDateParam);


    /**
     * 获取最新的一条日期
     * @return
     */
    public TbClassTime getNewClassTime();
}
